#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1000010;
int a[N], sum[N];
// 求多个区间的交集
int n, p;


int main()
{
    cin >> n >> p;
    for(int i = 0; i < n; ++i) cin >> a[i];
    sort(a, a + n);
    for(int i = 0, j = 0; j < n; ++j)
    {
        while(i < j && abs(a[j] - a[i]) > p) ++i;
            sum[j] += j - i + 1;
    }
    // cout << sum[2] << endl;
    for(int i = n - 1, j = n - 1; j >= 0; --j)
    {
        while(i > j && abs(a[j] - a[i]) > p) --i;
        // if(j == 2) cout << i << endl;
        sum[j] += i - j;
        // if(j == 2) cout << sum[2] << endl;
    }
    int ans = 0;
    for(int i = 0; i < n; ++i)
        ans = max(ans, sum[i]);
    cout << ans << endl;
    return 0;
}